﻿//  --------------------------------
//  Copyright (c) AW Systems, Inc. All rights reserved.
//  This source code is made available under the terms of the Microsoft Public License (Ms-PL)
//  http://www.codeplex.com/SLAM/license
//  ---------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Slam.Configuration
{
	/// <summary>
	/// Represents a type configured to be managed by SLAM.
	/// </summary>
	public class ConfiguredType
	{	
		/// <summary>
		/// The Name of the type.
		/// </summary>
		public string Name { get; set; }

		/// <summary>
		/// The Id of the type, used specifically when the type is a List.
		/// </summary>
		public string Id { get; set; }

		/// <summary>
		/// Indicates whether the type is a Content Type or not.
		/// </summary>
		public bool ContentType { get; set; }

		/// <summary>
		/// The name of the Site (Web) under which the type exists.  
		/// </summary>
		/// <remarks>Site is blank for types in the Root site.  For types in a subsite, Site should
		/// match the format of a SPWeb.Name value such as "MySubsite/MySubSubSite" for a sub-subsite.</remarks>
		public string Site { get; set; }

		/// <summary>
		/// The name of the Site Collection (Site) under which the type exists.  
		/// </summary>
		/// <remarks>Site is blank for types in the Root site collection.  For types in another Site Collection, Site Collection should
		/// match the format of a SPSite.ServerRelativeUrl value such as "sites/MySiteCollection" for a site collection under "sites".</remarks>
		public string SiteCollection { get; set; }

		/// <summary>
		/// The name of the TypeIdDefintion the type.
		/// </summary>
		public string TypeIdDefinition { get; set; }

		/// <summary>
		/// Creates a new ConfiguredType instance.
		/// </summary>
		public ConfiguredType() { }
	}
}
